package codingforgreat.class15;

public class Class06_LC_714 {
    public static int maxProfit(int[] arr, int fee) {
        if (arr == null || arr.length < 2) {
            return 0;
        }
        int N = arr.length;
        // 0..0   0 -[0] - fee
        int bestbuy = -arr[0] - fee;
        // 0..0  卖  0
        int bestsell = 0;
        for (int i = 1; i < N; i++) {
            // 来到i位置了！
            // 如果在i必须买  收入 - 批发价 - fee
            int curbuy = bestsell - arr[i] - fee;
            // 如果在i必须卖  整体最优（收入 - 良好批发价 - fee）
            int cursell = bestbuy + arr[i];
            bestbuy = Math.max(bestbuy, curbuy);
            bestsell = Math.max(bestsell, cursell);
        }
        return bestsell;
    }
}
